home *** CD-ROM | disk | FTP | other *** search
/ Amiga Games Extra 1996 September / Amiga Games Extra CD-ROM 9-1996.iso / userbox / publicdomain / aplayer / typesort.aplay < prev    next >
Text File  |  1995-05-26  |  2KB  |  95 lines

  1. /* This procedure will sort all your modules into the types */
  2.  
  3. ADDRESS APlayer
  4. OPTIONS RESULTS
  5. SIGNAL ON HALT
  6.  
  7. PARSE ARG moddir
  8.  
  9. msg= "This script will sort all your modules into different categories."||'0A'X
  10. msg=msg||"WARNING! ONLY USE THIS ON YOUR MODULE DIRECTORY"||'0A'X
  11. msg=msg||"*NOT* ON YOUR SYS: DH0: OR OTHER ROOT DIRECTORIES."||'0A'X
  12. msg=msg||'0A'X
  13. msg=msg||"Do you want to continue?"
  14.  
  15. Request "Okay|Cancel!" msg
  16.     IF RESULT=0 THEN EXIT
  17.  
  18. IF moddir = '' THEN DO
  19.     GetDir "Select the root of your modules"
  20.     IF RC=0 THEN
  21.         moddir=RESULT
  22. END
  23.  
  24. IF moddir ~='' THEN DO
  25.  
  26.     IF RIGHT(moddir,1)~=':' & RIGHT(moddir,1)~='/' THEN
  27.         moddir=moddir||'/'
  28.     
  29.     /* Add the functions of the 'rexxsupport.library' */
  30.     IF ADDLIB('rexxsupport.library',0,-30,0) = 0 THEN DO
  31.         IF SHOW('L','rexxsupport.library') = 0 THEN DO
  32.             Request "Okay" 'Couldn''t open rexxsupport.library'
  33.             EXIT 10
  34.         END
  35.     END
  36.  
  37.     /* Get the contents of the module directory */
  38.     SetCycle RexxMsg; RexxMsg "Scanning directory..."
  39.     modlist = SHOWDIR(moddir,'F',';')||';'
  40.     
  41.     IF modlist~=';' THEN DO
  42.         DO UNTIL modlist=''
  43.             ClearList
  44.             modname=LEFT(modlist,INDEX(modlist,';')-1)
  45.             RexxMsg "Loading/testing module..." 
  46.             AddMod moddir||modname
  47.             PlayMod 1
  48.             GetPlayer
  49.             type=SPACE(RESULT,1,'_')
  50.  
  51.             IF type~='???' THEN DO
  52.               IF ~EXISTS(moddir||type) THEN DO
  53.                   RexxMsg    "Making "||type||" directory..."
  54.                   CALL makedir(moddir||type)
  55.               END
  56.  
  57.               type=type||'/'
  58.               okay=1
  59.               IF EXISTS(moddir||type||modname) THEN DO
  60.                   Request "Overwrite|Skip" "File"||'0A'X||moddir||type||modname||'0A'X||"already exists!"
  61.                   okay=RESULT
  62.               END
  63.  
  64.               IF okay THEN DO
  65.                   RexxMsg "Moving file:"||modname
  66.                   CALL rename(moddir||modname,moddir||type||modname)
  67.                   CALL rename(moddir||modname||'.info',moddir||type||modname||'.info')
  68.  
  69.                                 tmpname=UPPER(modname)
  70.                                 IF LEFT(tmpname,5)='MDAT.' THEN
  71.                                     modname=RIGHT(modname,LENGTH(modname)-5)
  72.  
  73.                                 modname=INSERT('SMPL.',modname)
  74.                   CALL rename(moddir||modname,moddir||type||modname)
  75.               END
  76.       END
  77.  
  78.             DelMod 1
  79.             modlist=DELSTR(modlist,1,INDEX(modlist,';'))
  80.         END
  81.     END
  82.   RexxMsg "Finished...."
  83. END
  84. EXIT
  85.  
  86. /* 
  87.    This is the 'emergencybrake' part of this script. If you can't stop this
  88.    sucker run the program HI which is located in the RXC drawer on your
  89.    sys: partition.
  90. */
  91.  
  92. HALT:
  93. Say 'The TypeSort.aplay script has been stopped. Hope you liked it.'
  94. EXIT
  95.